// 异步任务分为宏任务和微任务两类
// 宏任务 文件操作  异步ajax setTimeout setInterval
// 微任务 Promise.then catch finally process.nextTick
// 每一个宏任务执行完之后，都会检查是否存在待执行的微任务，
// 如果有，则执行完所有微任务之后，再继续执行下一个宏任务。
setTimeout(function () {
    console.log('1')
}, 1000)

new Promise(function (resolve) {
    console.log('2')
    resolve()
}).then(function () {
    console.log('3')
})

console.log('4')

setTimeout(function () {
    console.log('5')
}, 1000)


new Promise(function (resolve) {
    console.log('6')
    resolve()
}).then(function () {
    console.log('7')
})
